﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Interface;

namespace Model
{
    [Serializable]
    public class ClsKanal : IClsKanal
    {
        public int Id { get; private set; }
        public int Level { get; private set; }
        public double kapacitet { get; private set; }
        public string Beliggenhed { get; private set; }
        public Queue<IClsVandstand> Vandstande { get; private set; }
        public double SidsteVandstand { get; private set; }
        public double Procentfyldt { get { return Math.Round(SidsteVandstand / this.kapacitet * 100); } }

        public ClsKanal(int Id, int Level, double Kapacitet, string Beliggenhed)
        {
            this.Id = Id;
            this.Level = Level;
            this.kapacitet = Kapacitet;
            this.Beliggenhed = Beliggenhed;
            this.Vandstande = new Queue<IClsVandstand>(24);
            this.SidsteVandstand = 0;
        }

        public void SetVandstand(ClsVandstand Vandstand)
        {
            if (this.Vandstande.Count >= 24)
                this.Vandstande.Dequeue();

            if (this.Vandstande.Count > 0 && Vandstand.Vandstand < this.Vandstande.Last().Vandstand)
                Vandstand.SetÆndringsType(-1);
            else if (this.Vandstande.Count > 0 && Vandstand.Vandstand > this.Vandstande.Last().Vandstand)
                Vandstand.SetÆndringsType(1);
            else
                Vandstand.SetÆndringsType(0);

            this.Vandstande.Enqueue((IClsVandstand)Vandstand);
            this.SidsteVandstand = Vandstand.Vandstand;
        }
    }
}
